#if !defined(_APP_POOL)
#define _APP_POOL

#define THREAD_NUM 5
#define MQ_MAXSIZE 10
#define MQ_NAME "/pool_task_queue"    // /dev/mqueue/pool_task_queue

typedef struct {
    void *(*task_func)(void *arg);
    void *arg;
} Task;

/**
 * 初始化线程 池
 * 1  创建队列 
 * 2  创建n线程数组
 */
int app_pool_init();

/**
 *  向线程池添加任务
 *   1   把函数和参数封装为task结构体
 *   2   把task结构体放入队列中
 */
int app_pool_add_task(void *(*task_func)(void *arg), void *arg);

/**
 *  销毁线程池
 * 1  结束所有的线程 
 * 2  销毁队列  删除队列文件
 */
int app_pool_destroy();
 

 

#endif // _APP_POOL
